﻿
namespace Pibby.Core.Views
{
	using System;
	using Pibby.Core.IO;
	using Pibby.Core.ViewModels;

	public interface IPortableMediaView
	{
		#region Device arrival/removal

		event EventHandler<PortableMediaSettingsEventArgs> PortableMediaSettingsChanged;

		event EventHandler<RemovableDriveEventArgs> RemovableDeviceArrived;
		event EventHandler<RemovableDriveEventArgs> RemovableDeviceRemoved;

		event EventHandler<TransferCommandEventArgs> TransferContent;

		event EventHandler EjectDevice;

		#endregion Device arrival/removal

		void ShowDeviceStatus(PortableMediaViewModel vm);
		void RefreshDeviceStatus(PortableMediaViewModel vm);

		void TransferStarting(int itemsToTransfer);
		void TransferProgress(int item);
		void TransferFinished(); // optional messages

		void ReportError(string message);
	}
}
